import {
  defineConfig,
  normalizePath
} from 'vite';
import vue from '@vitejs/plugin-vue';
// 安装@types/node解决报错 pnpm add @types/node -D
import path from 'path';

//只需命令行pnpm run lint 就可以检测js，css

// 用 normalizePath 解决 window 下的路径问题 增加自动导入style样式
const variablePath = normalizePath(path.resolve('./src/style.less'));
// 我们安装一个常见的插件，用来解决浏览器兼容性问题，那就是autoprefixer 安装autoprefixer: pnpm add autoprefixer -D run build后自动携带webkit前缀
import autoprefixer from 'autoprefixer';
//  vite的Eslint
import viteEslint from 'vite-plugin-eslint';
// stylelint也有相同得vite插件
import viteStylelint from 'vite-plugin-stylelint';

// 在vite中配置别名 path
// vite的svg插件 这样的话svg需要按组件引入import vueImg from '@assets/vue.svg';
import svgLoader from 'vite-svg-loader';
// 使用tsx编写组件
import vueJsx from '@vitejs/plugin-vue-jsx';
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(), viteEslint(), viteStylelint(), svgLoader(), vueJsx()],
  css: {
    preprocessorOptions: {
      less: {
        //增加自动导入style样式
        additionalData: `@import "${variablePath}";`
      }
    },
    postcss: {
      plugins: [
        autoprefixer({
          // 指定目标浏览器
          overrideBrowserslist: ['> 1%', 'last 2 versions']
        })
      ]
    }
  },
  resolve: {
    // 别名配置
    alias: {
      '@': path.join(__dirname, './src')
      // '@store/*': path.resolve(__dirname, './src/store')
    }
  },
  build: {
    // 8 KB以上base64
    assetsInlineLimit: 8 * 1024
  },
  server: {
    proxy: {
      '/api': {
        // target: 'http://101.132.135.13:16782/',
        target: 'http://192.168.110.191:9633/', //
        //target: 'http://192.168.110.80:16782/',//
        changeOrigin: true,
        rewrite: (path) => path.replace(null, '')
      }
    },
    host: '0.0.0.0',
    open: true
  }
});